/**
 * Copyright © 2011 Creativor Studio.
 * About license information, please see LICENSE.txt.
 */

package org.creativor.rayson.annotation;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import org.creativor.rayson.api.AsyncRpcProtocol;
import org.creativor.rayson.api.RpcProtocol;

/**
 * Annotation on {@link AsyncRpcProtocol} to specified the {@link RpcProtocol} that
 * the proxy associated to.
 * 
 * @author Nick Zhang
 */
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
@Documented
public @interface Protocols
{
	/**
	 * Associated {@link RpcProtocol}s of one {@link AsyncRpcProtocol} .
	 */
	public Class<? extends RpcProtocol>[] value();
}
